package com.atlin.model;

import com.wy.common.license.model.Modules;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 授权模块
 * @TableName license_modules
 */
@Data
public class LicenseModulesVo {
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 父级ID
     */
    private Long parentId;

    /**
     * 模块名称
     */
    private String name;

    /**
     * 路由路径
     */
    private String path;

    /**
     * 接口列表（JSON数组）
     */
    private List<String> apis;

    /**
     * 子模块（JSON数组）
     */
    private List<LicenseModulesVo> children;


    public static Modules convertSingle(LicenseModulesVo vo) {
        Modules module = new Modules();
        BeanUtils.copyProperties(vo, module); // 直接复制 name/path/apis
        if (vo.getChildren() != null && !vo.getChildren().isEmpty()) {
            List<Modules> childModules = vo.getChildren().stream()
                    .map(LicenseModulesVo::convertSingle)
                    .collect(Collectors.toList());
            module.setChildren(childModules);
        }
        return module;
    }
}